﻿/*
 * Сделано в SharpDevelop.
 * Пользователь: Eugenij
 * Дата: 29.01.2014
 * Время: 17:41
 * 
 * Для изменения этого шаблона используйте Сервис | Настройка | Кодирование | Правка стандартных заголовков.
 */
using System;
using System.Drawing;
using System.Windows.Forms;

namespace hwspeed
{
    /// <summary>
    /// Description of AT.
    /// </summary>
    public partial class fmAT : Form
    {
        Modem modemchik = null;
        string last_cmd = "";
            
        public fmAT()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
            Icon = Configuration.MainIcon;
            try { modemchik = new Modem(Configuration.SelectedModem); } catch (Exception){}
            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }
        
        public void SwitchMode(bool inBath)
        {
            if (inBath)
            {
                btSend.Visible = false;
                edAT.Visible = false;
                labpack.Visible = true;
                rhATres.Top = labpack.Bottom + 2;
                rhATres.Height = edAT.Bottom - rhATres.Top;
            }
            else
            {
                btSend.Visible = true;
                edAT.Visible = true;
                labpack.Visible = false;
                rhATres.Top = 12;
                rhATres.Height = edAT.Top - 14;
                
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.SelectionLength = 0;
                rhATres.SelectionColor = Color.Blue;
                rhATres.SelectedText = string.Format(" {0} ", DateTime.Now);
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.SelectionLength = 0;
                rhATres.SelectionColor = Color.Red;
                rhATres.SelectedText = "# Выполнение команд завершено";
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.SelectionLength = 0;
                rhATres.SelectionColor = rhATres.ForeColor;
                rhATres.AppendText("\r\n");
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.ScrollToCaret();
            }
        }
        
        
        public void SendAT(string ats)
        {
            if (ats.Length > 0)
            {
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.SelectionLength = 0;
                rhATres.SelectionColor = Color.Blue;
                rhATres.SelectedText = string.Format(" {0} ", DateTime.Now);
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.SelectionLength = 0;
                rhATres.SelectionColor = Color.Red;
                rhATres.SelectedText = string.Format("\"{0}\"", ats);
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.SelectionLength = 0;
                rhATres.SelectionColor = rhATres.ForeColor;
                rhATres.AppendText(" SENDING...\r\n");
                rhATres.AppendText(string.Join("\r\n", modemchik.AtCmd(ats)));
                rhATres.SelectionStart = rhATres.Text.Length;
                rhATres.ScrollToCaret();
                rhATres.AppendText("\r\n");
            }
        }
        
        void FmIndicatorFormClosing(object sender, FormClosingEventArgs e)
        {
            modemchik.Reset();
        }

        void BtSendClick(object sender, EventArgs e)
        {
            if (edAT.Text.Length > 0)
            {
                SendAT(edAT.Text);
                last_cmd = edAT.Text;
                edAT.Text = "";
            }
        }
        
        void EdATKeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up){
                edAT.Text = last_cmd;
                edAT.SelectAll();
            }
        }
    }
}
